print({1, 2, 3} and {4, 5, 6})  # {4, 5, 6}
print({1, 2, 3} or {4, 5, 6})  # {1, 2, 3}
print({True, False} and {True, False})  # False True
print({1, 0} and {2, 0})  # {0,1}
print(True and True)  # True

x = {1, 2, 3, 4, 5}
x.add(1)  # {1, 2, 3, 4,5}
x.add(6)
print(x)  # {1, 2, 3, 4, 5, 6}
x.update({5, 11, 12})
print(x)  # {1, 2, 3, 4, 5, 6, 11, 12}
x.update({22, 34})  # 后面一定要是可迭代对象
x.update((54, 56))
x.update((57, ))
# x.update((57))  # TypeError: 'int' object is not iterable
print(x)  # {1, 2, 3, 4, 5, 6, 34, 11, 12, 22, 54, 56, 57}
# print(f'remove: {x.remove(58)}')  # 如果值不存在，remove 返回错误 KeyError。如果存在，删除并返回 None
print(f'discard: {x.discard(58)}')  # 不管值存不存在，都返回 None。意思就是返回值没有意义
print(x)  # {1, 2, 3, 4, 5, 6, 34, 11, 12, 22, 54, 56, 57}
x.discard(1)
print(x)  # {2, 3, 4, 5, 6, 34, 11, 12, 22, 54, 56, 57}
print(f'pop:{x.pop()}   x:{x}')  # pop 随机弹出一个值，目前看都是 2
print(len(x))  # 11 集合元素数量
x.clear()
print(x)  # set()

x = {"aa", "bb"}
x.update("ff")  # update 传入的是可迭代对象，"ff"是可迭代的。相当于插入两个 ff
print(x)  # {'bb', 'aa', 'f}
x.add("gg")  # {'aa', 'f', 'bb', 'gg'} ,add 是传入一个元素
print(x)
x.add(1)  # {1, 'f', 'gg', 'aa', 'bb'}
print(x)
x.add((1, 2))  # {1, (1, 2), 'f', 'gg', 'aa', 'bb'}
# x.add({3, 4})  # TypeError: unhashable type: 'set'，不能传入不可 hash 对象
print(x)
